package com.matt.service;

import com.matt.domain.evaluating.RecommendCourse;
import com.matt.domain.evaluating.RecommendCourseTimes;
import com.matt.foundation.vo.evaluate.Web.WebRecommendCourseVo;
import com.matt.foundation.vo.evaluate.Web.WebRecommendTimesVo;

import java.util.List;

/**
 * @author diao.qiao@outlook.com
 * @version V1.0
 * @description: 推荐课程
 * @since 2019-01-16
 */
public interface RecommendCourseService {

    /**
     * 评测完成后，根据评测结果，得到对应推荐课程并保存
     *
     * @param evaluateRecordId 评测纪录Id
     * @param monthAge         宝宝月龄
     * @param evaluateList     宝宝评测记录
     */
    List<RecommendCourse> addRecommendCourse(String evaluateRecordId, Integer monthAge, List evaluateList);

    /**
     * 根据评测Id 查询推荐课程
     *
     * @param evaluateRecordId 评测id
     * @return
     */
    List<WebRecommendCourseVo> findCoursesByEvaluateId(String evaluateRecordId);

    /**
     * 修改选择的推荐课程
     *
     * @param evaluateRecordId 评测id
     * @param courseIds        选中的id
     * @return 选中的courseIds
     */
    List<String> modifyRecommendCourse(String evaluateRecordId, String[] courseIds);

    /**
     * 新增/修改 推荐课时数
     *
     * @param evaluateRecordId 评测id
     * @param nurseryTimes     推荐托班月数
     * @param earlyTimes       推荐早教课时数
     */
    RecommendCourseTimes editRecommendCourseTimes(String evaluateRecordId, Integer nurseryTimes, Integer earlyTimes);

    /**
     * 根据评测id，查询推荐课时数
     *
     * @param evaluateRecordId
     * @return
     */
    WebRecommendTimesVo findRecommendTimesByEvaluateRecordId(String evaluateRecordId);
}
